//控制一行显示个数
var view = 8;
// 系统CD
var appCd = "";
var roleid_ = "";
var callBackRole_="";
var titles = [ "addRole", "modifyRole", "eraseRole","accountToRole"];

$(window).resize(function() {
	$('#roleList').datagrid("resize", {
		height : 'auto',
		width:'auto'
	});
});

function modifyRoleCallBack(datas){
	setFormJsonDataByFormId('edit_role_form', datas);
}

function deleteCallBack(datas){
	if (datas) {
		$.messager.alert(message_info, message_info_delete_success, 'info');
	}
	roleListReLoad();
}
var buttons = {
	// 新增
	"addRole" : {
		text : button_add,
		iconCls : 'icon-add',
		method : function() {
			search_();
			$("#appCd").attr("disabled", false);
			// 设置帐户状态（是否可以编辑）
		}
	},
	// 修改
	"modifyRole" : {
		iconCls : 'icon-edit',
		text : button_modify,
		method : function() {
			var id = $('#roleList').datagrid("getSelections");
			if (id == null || id.length == 0) {
				$.messager.alert(message_warning,message_warning_data, 'warning');

			} else if (id.length > 1) {
				$.messager.alert(message_warning, message_warning_unique, 'warning');
			} else {
				search_();
				var url = findRoleById_+"?roleId=" + id[0].id;
				
				$.ajax({
			        type:'post',
				        url:url+"&jsoncallback=modifyRoleCallBack",
				        dataType:'jsonp',
			        jsonp:"modifyRoleCallBack",
				        async: false,
			        success:function(data){
				    }
				});
				// 设置帐户状态（是否可以编辑）
				$("#appCd").attr("disabled", "disabled");
			}

		}
	},
	// 删除
	"eraseRole" : {
		iconCls : 'icon-remove',
		text : button_delete,
		method : function() {
			var id = $('#roleList').datagrid("getSelections");
			if (id == null|| id.length == 0 ) {
				$.messager.alert(message_warning,message_warning_data, 'warning');

			} else {
				$.messager.confirm(message_confirm, message_info_modify_select_delete, function(r) {
					if (r) {
						var ids = "";
						for(var i=0;i<id.length;i++){
							ids = ids +id[i].id+",";
						}
						
						var url = deleteRole_+"?id=" + ids;
						$.ajax({
					        type:'post',
						        url:url+"&jsoncallback=deleteCallBack",
						        dataType:'jsonp',
					        jsonp:"deleteCallBack",
						        async: false,
					        success:function(data){
						    }
						});
					}
				});
			}
		}
	},
	//将账户给角色
	"accountToRole" : {
		iconCls : 'icon-remove',
		text : '设置账户',
		method : function() {
			var id = $('#roleList').datagrid("getSelections");
			if (id == null || id.length == 0) {
				$.messager.alert(message_warning,message_warning_data, 'warning');

			} else if (id.length > 1) {
				$.messager.alert(message_warning, message_warning_unique, 'warning');
			} else {
				roleid_ = id[0].id;
				var url = findaccount_+"?roleId=" + id[0].id;
				$.post(url, {}, function(datas) {
					if(datas==null){
						$("#fn_select_account_ids").val("");
						$("#fn_select_account_names").val("");
					}else{
						$("#fn_select_account_ids").val(datas.id);
						$("#fn_select_account_names").val(datas.accountNm);
					}
					search_account(initAccountInfo, '帐户选择');
				}, 'json');
			}
		}
	}
};

function cra_app_helper(d){
	$("#cra_app").get(0).options.add(new Option('', ''));
	$("#appCd").get(0).options.add(new Option('', ''));
	for ( var i = 0; i < d.length; i++) {
		$("#cra_app").get(0).options.add(new Option(d[i].appName,
				d[i].appCd));
		$("#appCd").get(0).options.add(new Option(d[i].appName,
				d[i].appCd));
	}
}
$(function() {
	$("#fn_select_account_ids").val("");
	$("#fn_select_account_names").val("");
	appCd = "123456abcdef";
	var mRes = "-1667686318";
	$.ajax({
        type:'get',
	        url:craapphelper_+"?jsoncallback=cra_app_helper",
	        dataType:'jsonp',
        jsonp:"cra_app_helper",
	        async: false,
        success:function(data){
	    }
	});
	
	$('#roleList').datagrid({
		url : roleList_+"?jsoncallback=?",
		width : 'auto',
		height : 'auto',
		// 是否显示分页
		pagination : true,
		// 是否显示行号
		rownumbers : true,
		// True 就会自动扩大或缩小列的尺寸以适应表格的宽度并且防止水平滚动。
		fitColumns : true,
		// True 就把行条纹化。（即奇偶行使用不同背景色）
		striped : true,
		// True 就会只允许选中一行。
		singleSelect : false,
		idField : 'id'
	});
	// 动态按钮生成
	setbuttons(appCd, mRes, titles, buttons, callbacks);
});

/**
 * 重新加载账户信息列表
 */
function roleListReLoad() {
	$('#roleList').datagrid('load', {
		searchRole : $('#cra_app').val()
	});
}

function editCallBack(datas){
	if (datas) {
		roleListReLoad();
		if(callBackRole_==""){
			$.messager
			.confirm(message_confirm,'角色添加成功，是否继续添加角色？',function(r) {
						if (!r) {
							$('#edit_role').dialog('close');
						}
					});
		}else{
			$.messager.alert(message_info, message_info_modify_success,
			'info');
			$('#edit_role').dialog('close');
		}
		
	}
}

// 数据结点查询条件
function search_(val) {
	$('#edit_role').show();
	$('#edit_role').dialog(
			{
				// 定义是否显示可折叠按钮
				collapsible : false,
				// 定义是否显示最小化按钮
				minimizable : false,
				// 定义是否显示最大化按钮
				maximizable : false,
				// 定义对话框是否可编辑大小
				// resizable:true,
				// 锁住窗口
				modal : true,
				// closeOnEscape 为true的时候，点击键盘ESC键关闭dialog，
				closeOnEscape : true,
				onClose : function() {
					$("#edit_role_form").resetForm();
					$("#id").val("");
					$("#edit_role_form table input").removeClass(
							"validatebox-invalid");
					$("#edit_role_form table input").removeClass(
					"validatebox-invalid-asy");
					$(".validatebox-tip").empty();
				},
				// 对话框底部的按钮，每个按钮包括: text, iconCls, handler etc.
				buttons : [
						{
							text : button_submit,
							iconCls : 'icon-ok',
							handler : function() {
								if ($("#edit_role_form").form("validate")) {
									callBackRole_ = $("#id").val();
									var data = $("#edit_role_form").ajaxForm()
											.formSerialize();
									$.ajax({
								        type:'post',
									        url:editRole_+"?jsoncallback=editCallBack",
									        data:data,
									        dataType:'jsonp',
									        jsonp:"editCallBack",
									        async: false,
								        success:function(data){
									    }
									});

								}
							}
						}, {
							text : button_cancal,
							handler : function() {
								$('#edit_role').dialog('close');
							}
						} ]
			});
}

function callbacks(button) {
	$('#roleList').datagrid("addToolbarItem",button);
	
//	var pager = $('#roleList').datagrid('getPager');
//	pager.pagination({
//		// 定义了是否显示页面列表
//		showPageList : true,
//		// 定义了是否显示刷新按钮
//		showRefresh : false,
//		// 定义了是否数据正在加载
//		loading : true,
//		buttons : button
//	});
}
/**
 * 应用系统改变事件
 */
function craAppChange() {
	$('#roleList').datagrid('load', {
		appCd : $('#cra_app').val()
	});
}

//数据结点查询条件
function search_account(url,title) {
	$('#select_account').show();
	$('#select_account').dialog({
		// 定义是否显示可折叠按钮
		collapsible : true,
		// 定义是否显示最小化按钮
		minimizable : false,
		// 定义是否显示最大化按钮
		maximizable : true,
		//定义对话框是否可编辑大小
		//resizable:true,
		// 锁住窗口
		modal:true,
		//closeOnEscape 为true的时候，点击键盘ESC键关闭dialog，
		closeOnEscape :false,
		//关闭事件
		onClose:function(event,ui){
			$("#account_search").attr("src","");
			$("#account_search").empty();
		}
	});
	$("#account_search").attr("src",url);
	$('#select_account').dialog('setTitle',title);
}
/**
 * 取得选中的帐户信息
 * @returns {___anonymous14947_15059}
 */
function getAccountInfo(){
	//根据选中的模块设置帐户信息
	var info="";
	info ={ids:$("#fn_select_account_ids").val(),names:$("#fn_select_account_names").val(),appCd:$("#cra_app").val()};
	// 传入用户ID,和名称
	return info;
}
/**
 * 设置选择的帐户
 * @param ids选中帐户ID
 * @param names 选中帐户名称
 */
function setAccountInfo(ids,names){
	if(ids !=""){
		ids = ids.substring(0,ids.length-1);
	}
	var url = assignaccount_+"?roleId=" +roleid_+"&accountIds="+ids;
	$.post(url, {}, function(datas) {
		if(datas){
			$.messager.alert(message_info_add_success, "给角色指派账户成功", 'info');
			// 设置帐户状态（是否可以编辑）
			$('#select_account').dialog('close');
			$("#account_search").attr("src","");
			$("#account_search").empty();
			$("#fn_select_account_ids").val(ids);
			$("#fn_select_account_names").val(names);
		};
	}, 'json');
};